perm filename PASDEF.ARR[UP,DOC] blob sn#484354 filedate 1979-10-22 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002			 IMPLEMENTATION DESCRIPTION.
C00007 00003		+ Future Plans:
C00015 ENDMK
CāŠ—;
		 IMPLEMENTATION DESCRIPTION.

DEC-10, DEC-20 (LOTS)		PASCAL/PASSGO at LOTS
---------------------

0. DATE/VERSION:	6-sep-79.	1.1.

1. DISTRIBUTOR/IMPLEMENTOR/MAINTAINER:

    Distributor/Maintainer:
		J. Q. Johnson
		LOTS Computer Facility			Arpanet:
		Stanford University			Admin.JQJ@SU-SCORE
		Stanford, CA 94305	 (415)497-3214

    Implementor/Maintainer:
		Armando R. Rodriguez
		Computer Science Department		Arpanet:
		Stanford University			ARR@SU-AI
		Stanford, CA 94305	 (415)497-4971

2. MACHINE:    Digital Equipment Corp. DEC-10 and DEC-20.

3. SYSTEM CONFIGURATION:   DEC TOPS-10, TOPS-20; TENEX and WAITS monitors,
	using Concise Command Language (CCL). Uses KA-10 instruction  set.
	Modifications for KI-10 improved inst. set, under development.

4. DISTRIBUTION:
	+ Nondisclosure agreement required. See accompanying form.
	  (*We require this with two purposes:
	      a) To know how many copies are around, and who has them.
	      b) To prevent the use of our improvements by profit-oriented
		   organizations in products that would later be sold.*)
	+ You should provide the transport medium. Methods used until now:
		- Through the Arpanet.
		- You send  us a  9 track tape  (no less  than 1200  feet,
		    please).   Specify   density   and   format   desired.
		    (default: 1600 bpi, DUMPER/BACKUP INTERCHANGE ormat).
		- You come by and get it on your tape.
	+ Distributed on an "as is" basis. Bug reports are encouraged  and
	    we will try to fix them and notify you as soon as possible.
	+ The  compiler  is  going through  a  continual,  although  slow,
	    improvement process. Users, and PUG, will be notified of major
	    new releases and critical bugs.

5. DOCUMENTATION:
	+ A modified  version of the  machine-retrievable manual from  the
	    original Hamburg package, as a complement to Jensen & Wirth.
	+ A  "help" file  for online  access  to the most relevant topics.
	+ A NOTES file with comments and hints from local users.
	+ An implementation checklist.
	+ A  description of  interesting parts  of the  internal  policies
	    (Packing mechanism, linkage conventions,  the symbol table,  a
	    complete list  of  error  messages, and  a  checklist  to  add
	    predefined procedures).
	+ All the documentation machine-retrievable.

6. MAINTENANCE POLICY:
	+ We are our own main user: maintenance benefits us first.
	+ No guaranteed reply-time.
	+ One to four releases a year, for the next two years, at least.
	+ Future Plans:
		- Support full Standard Pascal
		- Optional flagging of use of non-standard features.
		- Sets of any size (probably 144-element sets first)
		- CHAR going from space to '}'.
		- Make the heap a real heap.
		- 20-native version.
		- A  more friendly  user  interface: Improvements  in  the
		    debugger,  more  and  better  utility  programs,  more
		    measurement tools; better error messages.

7. STANDARD:
	+ It supports the standard as defined in Jensen & Wirth, except:
	   - Records, Arrays and Files of Files are not supported.
	   - Read and Write to non-text Files are not supported.
	   - Set  expressions that contain a range delimited by  variables
		or expressions are not supported.
	   - The heap works as a stack. Procedure DISPOSE 'pops' the given
		item and everything else that was created afterwards.
	+ Set size is 72 elements, set origin is zero.
	+ Type CHAR includes only from space to underbar. No lower case.
	+ EXTENSIONS:  Type  ASCII;  functions  FIRST,  LAST,  UPPERBOUND,
	    LOWERBOUND for scalars and arrays, respectively; MIN and  MAX;
	    separately compiled procedures; a string manipulation package;
	    LOOP-EXIT   construct;   OTHERWISE    in   CASE    statements;
	    initialization procedures; DATE, TIME, REALTIME.

8. MEASUREMENTS:
	12000+ lines of PASCAL code, 590,000+ chars including comments.
	COMPILATION SPEED: around 13,000 chars/sec of CPU time on a 2050.
	EXECUTION SPEED:  as good  as that  of the  non-optimized  FORTRAN
	    compiler.
	COMPILATION SPACE: the  compiler takes 50k  of upper segment,  and
	    can work with 16k lower segment.
	You receive two compilers (hence the name).  They support  exactly
	the same language and features, but one of them (PASSGO)  produces
	the code incore, which saves 25% CPU time and a lot of I/O in  the
	compile-load-and-go sequence.  This is ideal for development,  and
	particularly helpful in a student environment.

9. RELIABLILITY:  Very good. It is very heavily used at LOTS (the  program
	that runs the most, after the editor). Implemented at 30+ sites.

10.  DEVELOPMENT  METHOD:   We  started  with  the  Hamburg-76   compiler,
	distributed by DECUS,  which is  a very good  compiler itself.  We
	have been cleaning bugs, adding missing parts of the standard, and
	adding features in the last 18 months.

11. LIBRARY SUPPORT AND OTHER FEATURES:
	+ Only the essential runtime routines are written in MACRO:
	   most of the library is written in PASCAL.
	+ Access to the FORTRAN library support.
	+ Access to external FORTRAN and MACRO routines.
	+ Separate compilation.
	+ Symbolic Post-mortem dump.
	+ Interactive runtime source-level debugging package.
	+ PCREF, a cross-referencer derived from Hamburg's CROSS.
	+ PFORM, a prettyprinter.
	+ Statement counts.